home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d16 / winvn060.arc / WVCNCM.C < prev    next >
C/C++ Source or Header  |  1991-07-01  |  12KB  |  494 lines

  1. /*-- This is the first line of WVCNCM.C -------------------------------*/
  2.  
  3. #include <stdlib.h>
  4. #include "windows.h"
  5. #include "wvglob.h"
  6. #include "winvn.h"
  7.  
  8. extern int WinVnDoComm(char *);
  9.  
  10.  
  11. /*-- function WinVnCommDlg ---------------------------------------------
  12.  *
  13.  *   Dialog function to process the Configure Communications
  14.  *   dialog box.
  15.  */
  16.  
  17. BOOL FAR PASCAL WinVnCommDlg(hDlg, iMessage, wParam, lParam)
  18. HWND      hDlg;
  19. unsigned  iMessage;
  20. WORD      wParam;
  21. LONG      lParam;
  22. {
  23. #define MAXSTR  32
  24. static int  MyCommPortID;
  25. static int  MyCommParityID;
  26. static int  MyCommModeID;
  27. static char pszMyCommSpeed[MAXCOMMSPEEDCHARS];
  28. static char pszMyNNTPPort[MAXSTR];
  29.  
  30. int write_ini = FALSE;
  31. char *cptr;
  32.  
  33. #if 0
  34.   MessageBox(hWndConf,"At Beginning of WinVncncm",
  35.                      "(debug)",MB_OK | MB_ICONASTERISK);
  36. #endif
  37.  
  38.   switch(iMessage) {
  39.  
  40.     case WM_INITDIALOG:
  41.       MyCommPortID = CommPortID;
  42.       MyCommParityID = CommParityID;
  43.       strcpy(pszMyCommSpeed,pszCommSpeed);
  44.       MyCommModeID = UsingSocket ? ID_COMMTCP : ID_COMMSERIAL;
  45.  
  46.       CheckRadioButton(hDlg, IDD_COM1, IDD_COM2, CommPortID);
  47.       CheckRadioButton(hDlg, IDD_7EVEN, IDD_8NONE, CommParityID);
  48.       CheckRadioButton(hDlg, ID_COMMTCP, ID_COMMSERIAL, MyCommModeID);
  49.       SetDlgItemText(hDlg,IDD_SPEED,pszMyCommSpeed);
  50.       SetDlgItemText(hDlg,ID_CONFIG_NNTP_SERVER,NNTPIPAddr);
  51.       sprintf(pszMyNNTPPort,"%d", NNTPPort);
  52.       SetDlgItemText(hDlg,ID_CONFIG_NNTP_PORT,pszMyNNTPPort);
  53.       return TRUE;
  54.       break;
  55.  
  56.     case WM_COMMAND:
  57.       switch(wParam) {
  58.         case ID_OK_SAVE:
  59.             write_ini = TRUE;
  60.         case IDOK:
  61.           GetDlgItemText(hDlg,IDD_SPEED,pszCommSpeed,MAXCOMMSPEEDCHARS-1);
  62.           CommPortID = MyCommPortID;
  63.           CommParityID = MyCommParityID;
  64.           CommIDtoStr(CommPortID,CommParityID,pszCommSpeed,szCommString);
  65.           WinVnDoComm(szCommString);
  66.  
  67.           GetDlgItemText(hDlg,ID_CONFIG_NNTP_SERVER,NNTPIPAddr,MAXNNTPSIZE);
  68.           GetDlgItemText(hDlg,ID_CONFIG_NNTP_PORT,pszMyNNTPPort,MAXSTR);
  69.           NNTPPort = atoi(pszMyNNTPPort);
  70.  
  71.           if(write_ini) {
  72.             WriteProfileString(szAppName,"CommString",szCommString);
  73.             WriteProfileString(szAppName,"NNTPIPAddr",NNTPIPAddr);
  74.             WriteProfileString(szAppName,"NNTPIPPort",pszMyNNTPPort);
  75.             cptr = MyCommModeID==ID_COMMTCP ? "1" : "0";
  76.             WriteProfileString(szAppName,"UseSocket",cptr);
  77.           }
  78.           EndDialog(hDlg,TRUE);
  79.           break;
  80.  
  81.         case IDCANCEL:
  82.           EndDialog(hDlg,FALSE);
  83.           break;
  84.  
  85.         case ID_COMMTCP:
  86.         case ID_COMMSERIAL:
  87.           MyCommModeID = wParam;
  88.           CheckRadioButton(hDlg, ID_COMMTCP, ID_COMMSERIAL, MyCommModeID);
  89.           break;
  90.  
  91.         case IDD_COM1:
  92.         case IDD_COM2:
  93.           MyCommPortID = wParam;
  94.           CheckRadioButton(hDlg,IDD_COM1,IDD_COM2,wParam);
  95.           break;
  96.  
  97.         case IDD_7EVEN:
  98.         case IDD_8NONE:
  99.           MyCommParityID = wParam;
  100.           CheckRadioButton(hDlg,IDD_7EVEN,IDD_8NONE,wParam);
  101.           break;
  102.  
  103.         default:
  104.           return FALSE;
  105.       }
  106.       break;
  107.  
  108. #if 0
  109.     case WM_PAINT;
  110.       InvalidateRect(
  111.       break;
  112. #endif
  113.     default:
  114.       return FALSE;
  115.       break;
  116.   }
  117.   return TRUE;
  118. }
  119.  
  120. /*--- Function CommIDtoStr --------------------------------------
  121.  *
  122.  *   Takes information relating to comm port configuration and creates
  123.  *   a string of the form to give to the MODE command.
  124.  *
  125.  *   Entry    Port      is the port (an IDD_* variable)
  126.  *            Parity    is the parity/data bits infor (an IDD_* variable)
  127.  *            szSpeed     is the speed, in character form
  128.  *
  129.  *   Exit     CommStr    is the string; e.g., "COM1:2400,n,8"
  130.  *            Function value is non-zero if error.
  131.  */
  132. int
  133. CommIDtoStr(Port,Parity,szSpeed,CommStr)
  134. int Port, Parity;
  135. char *szSpeed;
  136. char *CommStr;
  137. {
  138.   register char *ptr;
  139.   int myPort;
  140.  
  141.   ptr = CommStr;
  142.   strcpy(ptr,"COM");
  143.   ptr += 3;
  144.   *(ptr++) = (char) (Port==IDD_COM1 ? '1' : '2');
  145.   *(ptr++) = ':';
  146.  
  147.   for(;*szSpeed; *(ptr++) = *(szSpeed++));
  148.   *(ptr++) = ',';
  149.   if(Parity == IDD_7EVEN) {
  150.     strcpy(ptr,"e,7");
  151.   } else {
  152.     strcpy(ptr,"n,8");
  153.   }
  154.  
  155.   return (0);
  156. }
  157.  
  158. /*-- function WinVnSaveArtDlg ---------------------------------------
  159.  *
  160.  *  Dialog function to handle Save Article dialog box.
  161.  */
  162.  
  163. BOOL FAR PASCAL WinVnSaveArtDlg(hDlg, iMessage, wParam, lParam)
  164. HWND      hDlg;
  165. unsigned  iMessage;
  166. WORD      wParam;
  167. LONG      lParam;
  168. {
  169. static int  MyAppend;
  170.  
  171. #if 0
  172.   MessageBox(hWndConf,"At Beginning of WinVnSaveArtDlg",
  173.                      "(debug)",MB_OK | MB_ICONASTERISK);
  174. #endif
  175.  
  176.   switch(iMessage) {
  177.  
  178.     case WM_INITDIALOG:
  179.       MyAppend = SaveArtAppend;
  180.  
  181.       CheckDlgButton(hDlg, IDD_APPEND, MyAppend);
  182.       SetDlgItemText(hDlg,IDD_FILENAME,SaveArtFileName);
  183.       return TRUE;
  184.       break;
  185.  
  186.     case WM_COMMAND:
  187.       switch(wParam) {
  188.         case IDOK:
  189.           GetDlgItemText(hDlg,IDD_FILENAME,SaveArtFileName,MAXFILENAME-1);
  190.  
  191.           SaveArtAppend = MyAppend;
  192.           if(!MRRWriteDocument(ActiveArticleDoc,sizeof(TypText),SaveArtFileName,SaveArtvRef,SaveArtAppend)) {
  193.              MessageBox(hWndConf,"Could not write to file","Problems saving file",MB_OK|MB_ICONEXCLAMATION);
  194.           }
  195.           EndDialog(hDlg,TRUE);
  196.           break;
  197.  
  198.         case IDCANCEL:
  199.           EndDialog(hDlg,FALSE);
  200.           break;
  201.  
  202.         case IDD_APPEND:
  203.           MyAppend = !MyAppend;
  204.           CheckDlgButton(hDlg,IDD_APPEND,MyAppend);
  205.           break;
  206.  
  207.         default:
  208.           return FALSE;
  209.       }
  210.       break;
  211.  
  212.     default:
  213.       return FALSE;
  214.       break;
  215.   }
  216.   return TRUE;
  217. }
  218.  
  219. /*-- function WinVnFindDlg ---------------------------------------
  220.  *
  221.  *  Dialog function to handle Search dialog box.
  222.  */
  223.  
  224. BOOL FAR PASCAL WinVnFindDlg(hDlg, iMessage, wParam, lParam)
  225. HWND      hDlg;
  226. unsigned  iMessage;
  227. WORD      wParam;
  228. LONG      lParam;
  229. {
  230. static int  MyAppend;
  231.  
  232. #if 0
  233.   MessageBox(hWndConf,"At Beginning of WinVnSaveArtDlg",
  234.                      "(debug)",MB_OK | MB_ICONASTERISK);
  235. #endif
  236.  
  237.   switch(iMessage) {
  238.  
  239.    case WM_INITDIALOG:
  240.       SetDlgItemText(hDlg,IDD_SEARCH_STRING,FindDoc->SearchStr);
  241.       return TRUE;
  242.       break;
  243.  
  244.    case WM_COMMAND:
  245.       switch(wParam) {
  246.          case IDOK:
  247.             GetDlgItemText(hDlg,IDD_SEARCH_STRING,FindDoc->SearchStr,MAXFINDSTRING-1);
  248.  
  249.             EndDialog(hDlg,TRUE);
  250.             break;
  251.  
  252.          case IDCANCEL:
  253.             EndDialog(hDlg,FALSE);
  254.             break;
  255.  
  256.          default:
  257.             return FALSE;
  258.       }
  259.       break;
  260.  
  261.    default:
  262.       return FALSE;
  263.       break;
  264.    }
  265.    return TRUE;
  266. }
  267.  
  268. /*-- function WinVnDoListDlg ---------------------------------------
  269.  *
  270.  *  Dialog function to ask whether we should check for new
  271.  *  newsgroups.
  272.  */
  273.  
  274. BOOL FAR PASCAL WinVnDoListDlg(hDlg, iMessage, wParam, lParam)
  275. HWND      hDlg;
  276. unsigned  iMessage;
  277. WORD      wParam;
  278. LONG      lParam;
  279. {
  280.  
  281.   switch(iMessage) {
  282.  
  283.    case WM_COMMAND:
  284.       switch(wParam) {
  285.          case IDOK:
  286.  
  287.             EndDialog(hDlg,TRUE);
  288.             break;
  289.  
  290.          case IDCANCEL:
  291.  
  292.             EndDialog(hDlg,FALSE);
  293.             break;
  294.  
  295.          default:
  296.             return FALSE;
  297.       }
  298.       break;
  299.  
  300.    default:
  301.       return FALSE;
  302.       break;
  303.    }
  304.    return TRUE;
  305. }
  306.  
  307.  
  308. /*--- Function WinVnPersonalInfoDlg ----------------------------------
  309.  *
  310.  *  Dialog function to obtain personal configuration info
  311.  *  (Name, email address, etc.) from the user.
  312.  */
  313.  
  314. BOOL FAR PASCAL WinVnPersonalInfoDlg(hDlg, iMessage, wParam, lParam)
  315. HWND      hDlg;
  316. unsigned  iMessage;
  317. WORD      wParam;
  318. LONG      lParam;
  319. {
  320. #define MAXSTR  32
  321. #if 0
  322. static char *pszMyUserName;
  323. static char *pszMyMailAddress;
  324. static char *pszMyOrganization;
  325. #endif
  326.  
  327. int write_ini = FALSE;
  328. int dialog_val;
  329. char *cptr;
  330.  
  331.  
  332.   switch(iMessage) {
  333.  
  334.     case WM_INITDIALOG:
  335. #if 0
  336.       pszMyUserName = malloc(MAILLEN);
  337.       pszMyMailAddress = malloc(MAILLEN);
  338.       pszMyOrganization = malloc(MAILLEN);
  339.  
  340.       strcpy(pszMyOrganization,Organization);
  341.       strcpy(pszMyUserName,UserName);
  342.       strcpy(pszMyMailAddress,MailAddress);
  343. #endif
  344.  
  345.       SetDlgItemText(hDlg,ID_CONFIG_EMAIL,MailAddress);
  346.       SetDlgItemText(hDlg,ID_CONFIG_NAME,UserName);
  347.       SetDlgItemText(hDlg,ID_CONFIG_ORG,Organization);
  348.       return TRUE;
  349.       break;
  350.  
  351.     case WM_COMMAND:
  352.       switch(wParam) {
  353.         case ID_OK_SAVE:
  354.             write_ini = TRUE;
  355.         case IDOK:
  356.           GetDlgItemText(hDlg,ID_CONFIG_NAME,UserName,MAILLEN-1);
  357.           GetDlgItemText(hDlg,ID_CONFIG_EMAIL,MailAddress,MAILLEN-1);
  358.           GetDlgItemText(hDlg,ID_CONFIG_ORG,Organization,MAILLEN-1);
  359.  
  360.           if(write_ini) {
  361.             WriteProfileString(szAppName,"UserName",UserName);
  362.             WriteProfileString(szAppName,"MailAddress",MailAddress);
  363.             WriteProfileString(szAppName,"Organization",Organization);
  364.           }
  365.           dialog_val = TRUE;
  366.           goto endit;
  367.           break;
  368.  
  369.         case IDCANCEL:
  370.           dialog_val = FALSE;
  371.        endit:;
  372. #if 0
  373.           free(pszMyUserName);
  374.           free(pszMyMailAddress);
  375.           free(pszMyOrganization);
  376. #endif
  377.           EndDialog(hDlg,dialog_val);
  378.           break;
  379.  
  380.         default:
  381.           return FALSE;
  382.       }
  383.       break;
  384.  
  385.     default:
  386.       return FALSE;
  387.       break;
  388.   }
  389.   return TRUE;
  390. }
  391.  
  392.  
  393.  
  394. /*--- Function WinVnMiscDlg ---------------------------------------------
  395.  *
  396.  *  Dialog function to obtain miscellaneous configuration info
  397.  *  (whether we should open a new window for each group, etc.)
  398.  *  from the user.
  399.  */
  400.  
  401. BOOL FAR PASCAL WinVnMiscDlg(hDlg, iMessage, wParam, lParam)
  402. HWND      hDlg;
  403. unsigned  iMessage;
  404. WORD      wParam;
  405. LONG      lParam;
  406. {
  407. int write_ini = FALSE;
  408. int dialog_val;
  409. int item;
  410.  
  411.  
  412.   switch(iMessage) {
  413.  
  414.     case WM_INITDIALOG:
  415.       CheckRadioButton(hDlg,ID_DOLIST_BASE,ID_DOLIST_ASK,DoList+ID_DOLIST_BASE);
  416.       CheckDlgButton(hDlg, ID_CONFIG_APPEND, SaveArtAppend);
  417.       CheckDlgButton(hDlg, ID_CONFIG_NEW_WND_GROUP, ViewNew);
  418.       CheckDlgButton(hDlg, ID_CONFIG_NEW_WND_ARTICLE, NewArticleWindow);
  419.  
  420.       return TRUE;
  421.       break;
  422.  
  423.     case WM_COMMAND:
  424.       switch(wParam) {
  425.         case ID_OK_SAVE:
  426.             write_ini = TRUE;
  427.         case IDOK:
  428.           SaveArtAppend = (IsDlgButtonChecked(hDlg,ID_CONFIG_APPEND) != 0);
  429.           ViewNew       = (IsDlgButtonChecked(hDlg,ID_CONFIG_NEW_WND_GROUP) != 0);
  430.           NewArticleWindow = (IsDlgButtonChecked(hDlg,ID_CONFIG_NEW_WND_ARTICLE) != 0);
  431.  
  432.           for(item=ID_DOLIST_BASE; item<=ID_DOLIST_ASK; item++) {
  433.             if(IsDlgButtonChecked(hDlg,item)) {
  434.               DoList = item - ID_DOLIST_BASE;
  435.             }
  436.           }
  437.  
  438.           if(write_ini) {
  439.             WriteProfileInt(szAppName,"SaveArtAppend",SaveArtAppend);
  440.             WriteProfileInt(szAppName,"NewWndGroup",ViewNew);
  441.             WriteProfileInt(szAppName,"NewWndArticle",NewArticleWindow);
  442.             WriteProfileInt(szAppName,"DoList",DoList);
  443.           }
  444.           dialog_val = TRUE;
  445.           goto endit;
  446.           break;
  447.  
  448.         case IDCANCEL:
  449.           dialog_val = FALSE;
  450.        endit:;
  451.           EndDialog(hDlg,dialog_val);
  452.           break;
  453.  
  454.         default:
  455.           return FALSE;
  456.       }
  457.       break;
  458.  
  459.     default:
  460.       return FALSE;
  461.       break;
  462.   }
  463.   return TRUE;
  464.  
  465. }
  466.  
  467. /*--- Function WinVnAppearanceDlg ----------------------------------
  468.  *
  469.  *  Dialog function to obtain window appearance configuration info
  470.  *  (font, color, etc.)
  471.  *  from the user.
  472.  */
  473.  
  474. BOOL FAR PASCAL WinVnAppearanceDlg(hDlg, iMessage, wParam, lParam)
  475. HWND      hDlg;
  476. unsigned  iMessage;
  477. WORD      wParam;
  478. LONG      lParam;
  479. {
  480.  
  481. }
  482.  
  483. BOOL
  484. WriteProfileInt(lpAppName,lpKeyName,intval)
  485. char far *lpAppName;
  486. char far *lpKeyName;
  487. int intval;
  488. {
  489.    char msg[20];
  490.  
  491.    itoa(intval,msg,10);
  492.    return(WriteProfileString(lpAppName,lpKeyName,msg));
  493. }
  494.